The present invention relates in general to the distribution of software and, more particularly, to a method and system for automated distribution of software.
A build-to-order process allows a customer to choose the configuration of a purchased system. With respect to a computer system, the configuration dictated by the customer can include various software options. The software options include, for example, operating systems, device drivers and application programs, in many different languages. In such a process, the customer orders a computer built to his specifications that includes particular software. A customer""s order is transmitted to the factory floor, where the computer system is assembled. The software is then loaded upon the computer system and the computer system is shipped to the customer.
In order to give customers a wide variety of possible configurations, it is necessary to maintain a large number of software packages. These packages must be accessible from the factory floor. The factory floor may include a file server, for example, that is used to load the particular software configuration upon the computer system ordered by the customer.
In addition to maintaining the software for installation on the factory floor, there are many other needs within a company for the software. For example, a validation department and/or a pilot department may need to test the software before it is made available for installation onto a customer system. Each of these departments may include a separate file server used to maintain the different software packages.
Therefore, a company instituting such a build process copies the particular files that make up a software package to various servers throughout the company for use by various persons.
An automated process can facilitate the movement of such files. For example, DELL COMPUTER CORPORATION uses an automated system called the AFPFan. The AFPFan receives a request to copy, or xe2x80x9cpromote,xe2x80x9d software to a remote server or multiple remote servers. The AFPFan then copies the software to a local cache and distributes the software to the remote server(s). The AFPFan can multi-thread the write process to expedite the promotion of the software.
With the use of automated processes, however, there has arisen a problem of configuration management. As different persons request the software (development, validation, factory, etc.), it is possible that these requests will copy older versions of the software over newer versions of the software. This, in turn, can lead to further problems. For example, if a worker on the factory floor requests and copies an obsolete device driver onto a newer device driver, then it is possible an incorrectly configured system would be shipped.
Conventional attempts to resolve such a situation are problematic. One conventional system includes manually tracking the software, versions, and each server the software is loaded upon. Such a solution is unworkable as the number of software packages grows. Additionally, as more than one user may have access to the various software, maintaining a single list becomes problematic.
Another conventional system involves a batch process that connects a network drive to the target servers. The batch process checks to ensure older files will not copy over newer files. For example, DELL COMPUTER CORPORATION instituted such a process. This system reduces many of the problems of manual tracking. However, this batch process requires a user to check the results of the batch process manually. This in turn lengthens the amount of time required to promote the software. Additionally, the time lag between the request for promotion and the checking of the result of the batch process can allow crossing or conflicting requests. That is, two users may unknowingly make conflicting promotion requests.
In accordance with the present invention, a method and system for automated distribution of software are disclosed that provide significant advantages over prior developed software distribution systems.
In one aspect of the present invention, a computer implemented method comprises maintaining a database of configuration information. The configuration information includes version information of loaded software stored on a remote server. The configuration information further includes version information of available software that is operable to be loaded upon the remote server. A request is received from a user to load the available software onto the remote server. The version information of the available software is compared with the version information of the loaded software. The available software is copied to the remote server.
In another aspect of the present invention, a system for automated distribution of software comprises a database of configuration information maintained on a computer readable medium. The configuration information includes version information of loaded software stored on a remote server. The configuration information further includes version information of available software that is operable to be loaded upon the remote server. A request page is operable to receive a request from a user to load the available software onto the remote server. A pre-processor interfaces to the database and the request page, the pre-processor operable to compare the version information of the available software with the version information of the loaded software. The pre-processor is further operable to allow the user to terminate or continue if the available software will corrupt the loaded software. A distribution engine interfaces with the pre processor and is operable to copy the available software onto the remote server.
It is a technical advantage of the present invention that it can prevent the inadvertent replacement of current software with obsolete software. This in turn allows for a more productive factory by reducing the time and costs associated with remedying an inadvertent replacement of current software.
It is another technical advantage of the present invention that it can maintain user logs of electronic signatures. In the event a problem occurs, it thus becomes easier to diagnose and correct.
It is a further technical advantage of the present invention that it can provide immediate feedback to a user if a request will corrupt software currently loaded upon the remote server. This can reduce or eliminate the problems of conflicting requests.
Other technical advantages should be apparent to one of ordinary skill in the art in view of the specification, claims, and drawings.